package com.ctsi.system.api.impl.local;

import com.ctsi.system.domain.DictionaryData;
import com.ctsi.system.service.DictionaryDataService;
import com.ctsi.system.service.api.DictionaryServiceProxy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * @author: zhangjw
 * @Date: 2018/10/12 18:06
 * @Description:
 */
@Component
@Primary
public class LocalDictionaryServiceProxyImpl implements DictionaryServiceProxy<DictionaryData> {

    @Autowired
    private DictionaryDataService dictionaryDataService;

    /**
     * 查询type类型字典数据
     *
     * @param type
     * @return 返回Map<String key, String value>
     */
    @
            Override
    public Map<String, String> getDictMap(String type) {
        return null;
    }

    /**
     * 查询type类型的字典数据
     *
     * @param type
     * @return 返回DictionaryData对象的List
     */
    @Override
    public List<DictionaryData> getDictList(String type) {
        return dictionaryDataService.queryAllDictDataWithoutCache(type);
    }

    /**
     * 通过字典数据的分类和编码查询出一条字典数据
     *
     * @param type
     * @param code
     * @return 返回字典数据对象DictionaryData
     */
    @Override
    public DictionaryData getDictDataByCode(String type, String code) {
        return this.dictionaryDataService.findDataByTypeAndCode(type, code);
    }

    /**
     * 通过字典数据的分类和字典数据值查询出一条字典数据
     *
     * @param type
     * @param value
     * @return 返回字典数据对象DictionaryData
     */
    @Override
    public DictionaryData getDictDataByValue(String type, String value) {
        return null;
    }

    /**
     * 查询type类型字典数据中值为value的数据的编码（code）
     *
     * @param type
     * @param value
     * @return 返回字典数据String
     */
    @Override
    public String getDictCode(String type, String value) {
        return null;
    }

    /**
     * 查询type类型字典数据中编码为code的数据的值（dict_value）
     *
     * @param type
     * @param code
     * @return 返回字典数据编码String
     */
    @Override
    public String getDictValue(String type, String code) {
        DictionaryData data = this.dictionaryDataService.findDataByTypeAndCode(type, code);
        if (data != null) {
            return data.getDictdataValue();
        }
        return null;
    }
}
